import { ethers } from "hardhat"; // 从hardhat中导入ethers工具库

/**
 * 主函数，用于部署HelloWorld智能合约
 */
async function main() {
    // 获取当前区块链环境的签名者列表，[owner]表示获取第一个签名者，通常是部署合约的账户
    const [owner] = await ethers.getSigners();

    // 通过ethers获取HelloWorld合约的工厂，这一步是准备部署合约
    const HelloWorld = await ethers.getContractFactory("HelloWorld");

    // 连接到owner账户并部署HelloWorld合约
    const helloWorld = await HelloWorld.connect(owner).deploy();

    // 等待合约部署完成
    await helloWorld.deployed();

    // 打印合约部署地址
    console.log("HelloWorld deployed to:", helloWorld.address);
}

// 执行主函数
main()
    .then(() => process.exit(0)) // 主函数执行成功后，退出进程，返回码为0
    .catch((error) => {
        console.error(error); // 主函数执行失败后，打印错误信息
        process.exit(1); // 退出进程，返回码为1，表示有错误发生
    });